﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using radnaVerzija.Interfejsi;
using MySql.Data.MySqlClient;

namespace radnaVerzija
{
    partial class DAL
    {
        public class RezervacijaDAO : IDaoCrud<Rezervacija>
        {
            protected MySqlCommand komanda;

            public long create(Rezervacija entitet)
            {
                try
                {
                    komanda = new MySqlCommand("insert into Rezervacije values ('" +
                        " 'ToDate('" + entitet.VrijemePocetka.ToString() +
                        "', DD.MM.YYYY), ('" + entitet.VrijemeZavrsetka.ToString() +
                        "', DD.MM.YYYY), osoba=" + entitet.Osoba.ToString() +
                        ", teren=" + entitet.Teren.ToString() +
                        ", cijena=" + entitet.Cijena.ToString() +
                        ", potvrdjena=" + entitet.Potvrdjena.ToString() +
                        ", recepcionar=" + entitet.Recepcionar +
                        ");", konekcija);
                    komanda.ExecuteNonQuery();
                    return komanda.LastInsertedId;

                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            public Rezervacija read(Rezervacija entitet)
            {
                try
                {
                    komanda = new MySqlCommand("select * from Rezervacije where rezervacija_ID = '" + entitet.IdRezervacije.ToString() + "';", konekcija);
                    MySqlDataReader citac = komanda.ExecuteReader();
                    Rezervacija rezervacija = null;
                    while (citac.Read())
                    {
                        //if (entitet.Ime == citac.GetString("ime") && entitet.Prezime == citac.GetString("prezime"))
                        rezervacija = new Rezervacija(citac.GetInt32("rezervacija_ID"));
                        return rezervacija;
                    }
                    return rezervacija;
                }
                catch (Exception ex)
                {
                    throw ex;
                }

            }
            public Rezervacija update(Rezervacija entitet)
            {
                try
                {
                    komanda = new MySqlCommand("update Rezervacije set ToDate('" + entitet.VrijemePocetka.ToString() +
                        "', DD.MM.YYYY), ('" + entitet.VrijemeZavrsetka.ToString() +
                        "', DD.MM.YYYY), osoba=" + entitet.Osoba.ToString() +
                        ", teren=" + entitet.Teren.ToString() +
                        ", cijena=" + entitet.Cijena.ToString() +
                        ", potvrdjena=" + entitet.Potvrdjena.ToString() +
                        ", recepcionar=" + entitet.Recepcionar +
                        ") where rezervacija_ID = " + entitet.IdRezervacije + ";", konekcija);
                    komanda.ExecuteNonQuery();
                    return read(entitet);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            public void delete(Rezervacija entitet)
            {
                try
                {
                    komanda = new MySqlCommand("delete from Rezervacije where rezervacija_ID = " + entitet.IdRezervacije + ";", konekcija);
                    komanda.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

        }
    }
}
